VisualHMI - 多语言(字库、文字标签)

1. 概述

VisulHMI平台支持多语言功能,用户不需要配置多套UI,将UI上的文字去掉,用相关控件代替代UI上的文字,配置控件上的相关语言词条,通过设置系统寄存器-多语言寄存器,一键切换不同语言词条

适用范围:VisualHMI - HMI&M系列

下载链接:VisualHMI - 多语言应用(点击下载)

在VisualHMI工程属性种,配置语言数,最大支持30种语言,如下所示

image-20231111152828367

[!note|tip:]

1.多语言功能取决于“字库(*.ttf文件,矢量字库)”里是否含有该字符

2.系统提供的字库均为免费字库,用户添加额有字库时,需要考虑版权,自行购买

3.对静态文案(不随着MCU串口指令或网络WIFI等其他方法更新),可以在软件上预先输入不同语言的字符串,编译运行后,通过设置“多语言系统寄存器”,进行切换预先输入的字符串

支持多语言的控件如下所示,共12种,可以在控件属性栏查看

image-20231111172419848

2. 字库

2.1 系统字库

在VisualFTF菜单栏,工程→字库中,可以添加、删除字库操作。其中,软件自带的字库如下所示:

  • DroidSans.tft:只含字母数字;
  • DS-DIGIB.tft:数码管, 大写字母、 数字;
  • fangsong_GB2312.tft:仿宋, 支持中英文;
  • songti_GB2312.tft:宋体, 支持中英文;
  • wqyMicroHeiMono.tft:文泉, 默认字库, 支持小语种(中文、繁体中文、英文、俄语、法语、日语、韩语、葡萄牙语、西班牙语、德语、意大利语), 多语言使用;

image-20231111153531403

2.2 添加字库

  1. 在字库设置里面,点击添加,选中字库文件即可,如下所示
  2. 勾选字库,如新添加的Arabic.ttf,索引为1,其中新添加的字库,会在工程目录下新建font文件夹,并将Arabic.ttf放在..\font目录下

Video_2023-11-11_154424

[!note|tip:]

1.添加的字库文件命名支持字母、数字、-、_等字符组成,命名长度不超过32个字符

2.3 替换字库

控件显示的字库和索引关联,如上章节所述,将Arabic.ttf替换为wqyMicroHeiMono.tft,将Arabic.ttf的索引修改为0,并取消勾选wqyMicroHeiMono.tft即可,如下所示

Video_2023-11-11_154944~1

[!note|tip:]

新加的字库,替换原本的字库,需要保存工程,重新打开,编辑界面时候才会刷新显示

2.4 删除字库

在字体设置列表中,系统自带的字库不支持删除。用户添加的字库,支持删除操作,如选中“Arabic”,点击删除即可,如下所示:

Video_2023-11-11_160456

2.5 裁剪字库

VisualHMI软件集成字库裁剪工具,在工程 字库裁剪,操作流程如下:

  1. 选择需要裁剪的字库,如下所示;
  2. 加载需要保留的字符集合:txt文件必须要UTF-8编码格式;
  3. 点击开始裁剪,将生成xxx_cut.ttf字库。如下所示

Video_2023-11-11_160815

2.6 合并字库

字库的合并,或某些字符缺失,可以通过第三方FontCreator 软件进行操作,本章节不进行阐述。可以在网上寻找相关资料了解

3 文字标签

在VisualHMI软件中,文字标签有利于多语言种的使用,一个文字标包含不同语言的合合集。用户在不同组态控件中可以引用同一个文字标签,省去了编写重复的文字的时间,尤其在使用多国语言文字时,更便捷的管理与修改所有用到的文字

点击Visual HMI软件菜单栏中【文字标签】打开文字标签管理,在该弹窗中可以对文字标签进行新增、修改、删除、导出以及导入操作

image-20231111161322823

3.1 增加文字标签

  1. 点击新增;
  2. 标签名称默认“text1”,用户可以修改有含义的标签名称,将译文词条复制到对于语言里,如下所示

Video_2023-11-11_162042

3.2 删除单个文字标签

如选中标签“下拉选择”,点击删除即可

Video_2023-11-11_162437

3.3 删除全部文字标签

点击全部删除,即可将所有标签全部清除,如下所示

Video_2023-11-11_162835

3.4 导出文字标签

当修改多语言的字符串内容时,可以导出xml或csv文件进行修改,流程如下所示:

  1. 点击导出;
  2. .保存为csv或xml文件,如下所示

Video_2023-11-11_163303

3.5 导入文字标签

3.5.1 导入csv

csv格式文件,打开WPS软件,第1列写标签名称,第2列写语言1的内容,第3列语言2的内容,依次类推。如下所示

[!note|tip:注意:]

1.需要根据当前工程语言数依次填入多语言内容,如:当前语言数为5,导入后,只识别前6列(1列标签名称+5列语言内容)

2.若改标签的语言内容含多个子项,用;隔开,如下拉选择控件的内容。

3.多语言文字,导入需要需要文件UTF8编码的文件

Video_2023-11-11_164223

3.5.2 导入xml

xml文件,打开相关编辑软件,第NAME为名称,LANG0为语言1的内容,LANG1语言2的内容,依次类推。如下所示

[!note|tip:注意:]

1.需要根据当前工程语言数依次填入多语言内容,如:当前语言数为5,导入后,只识别前LANG4 前的语言

2.若改标签的语言内容含多个子项,用;隔开,如混轮的内容。

3.多语言文字,导入需要需要文件UTF8编码的文件

<TextLabel><label NAME="滚轮" LANG0="1.滚轮;2.滚轮;3.滚轮;4.滚轮;5.滚轮;" LANG1="1. Roller; 2. Roller; 3. Roller; 4. Roller; 5. Roller;" LANG2="1. Walze; 2. Walze; 3. Walze; 4. Walze; 5. Walze;" LANG3="1. 롤러;2.롤러;3.롤러;4.롤러;5.롤러;" LANG4="1 . بكرة ;   2 . بكرة ;   3 . بكرة ;   4 . بكرة ;   5 . بكرة ;"/></TextLabel>

Video_2023-11-11_164945

4 应用说明

工程配置5种语言,分别是中文、英文、德语、韩语、阿拉伯语。其中Arabic.ttf是添加的用户字库。

目前文字、位状态指示灯、多状态指示灯、位状态按钮、多状态按钮、功能按钮若不使用标签,可支持单独设置每一种语言的字库、文字大小;RTC控件支持设置字库文件;其他支持多语言的控件,如滚轮、下拉菜单、表格类的表头、配方信息等,均只支持标签形式配置

4.1 工程配置

工程中添加支持多语言的控件,如下所示

image-20231111165636883

4.1.1 滚轮控件

  1. 使用标签:√
  2. 文本标签,选择“滚轮”,如下所示

在菜单栏 → 编辑 → 状态/语言,可以预览不同语言的词条显示状态

Video_2023-11-11_170148

4.1.2 告警控件

  1. 点击菜单栏 → 告警设置
  2. 在告警内容-语言x一栏中,填入多语言字符串

[!note|tip:注意:]

注意:告警内容目前不支持标签

Video_2023-11-11_172106

4.1.3 告警控件

  1. 点击菜单栏 → 配方设置

  2. 在文字标签一栏中,选择配方名称,如下所示

Video_2023-11-11_172739

若配方以数据记录控件方式显示,数据记录控件的表头也支持设置多语言,操作步骤下所示:

  1. 数量来源:配方数据

  2. 表格设置:点击进入,设置对应表头的对应的文字标签,如下所示

Video_2023-11-11_173019

[!note|tip:注意:]

注意:资料采集-数据记录、操作记录、告警记录的表头配置流程一样,此处不在阐述

4.1.4 位状态指示灯

若不使用标签,也只单独配置,以位状态指示灯控件为例:

  1. 位状态指示灯属性栏,点击设置

  2. 选择对应的状态S0/S1:填入对应字符串

  3. 每种语言可以单独设置字库、文字大小,如下所示:

Video_2023-11-11_173622

4.2 多语言设置配置

系统提供对应的寄存器设置多语言切换,寄存器地址为LW0119。设置画面中,添加5个位多态指示灯控件、5个字设置按钮控件,如图 下所示:

  1. 多状态指示灯控件:关联地址为LW0119,从左往右状态转换依次为1;0;、0;1;、0;2;、0;3;、0;4;启用图库。

    image-20231111174122123

  2. 字设置按钮控件:关联地址为LW0119,在多状态指示灯上,叠加5个字设置按钮,用来切换语言索引,从左往右设置常量为0~4

    image-20231111174311287

4.3 多语言掉电存储

若多语言设置后掉电存储,需要在LUA脚本设置,以下设置2个寄存器,如下所示:

image-20231111174609180

4.3.1 LUA脚本

在on_int()初始化中,从上一次掉电存储的参数加载。当用户修改多语言时,触发on_updata(...)函数,设置LW011A,LW011B寄存器保存,代码下所示:

function on_init()
    set_uint16(VT_LW, 0x011B, (1<<1)) -- 选择需要加载的掩码,bit1,多语言
    set_uint16(VT_LW, 0x011A, 0x5502) -- 加载选中的系统参数
    update_system() --立刻加载
end

function on_update(slave,vtype,addr)
    if vtype == VT_LW
    then
        if addr == 0x0119
        then
            set_uint16(VT_LW, 0x011B, (1<<1))-- 设置的系统变量,bit1-多语言
            set_uint16(VT_LW, 0x011A, 0x5501)-- 保存参数
        end
    end
end

[!note|tip:注意:]

注意:有多个系统参数需要掉存储,设置0x011B,将对应为置为1,如背光 set_uint16(VT_LW, 0x011B, (1<<3) |(1<<1))

4.3 运行预览

运行虚拟屏,进入语言设置,切换不同语言,相关控件的词条对应变化,如下所示:

Video_2023-11-11_175159~1

Copyright ©Dacai all right reserved,powered by Gitbook该文件修订时间: 2023-12-27 13:28:52

results matching ""

    No results matching ""